package com.huitu.whht.base.core.api.wr.md;

import com.huitu.api.rest.AbstractApiResource;
import com.huitu.commons.PageUtils;
import com.huitu.whht.api.core.common.response.ApiResultBuilder;
import com.huitu.whht.api.core.common.annotations.SzyCoreApiResource;
import com.huitu.whht.api.core.common.annotations.SzyCoreApiService;
import com.huitu.whht.api.core.common.response.StatusRespBuilder;

import com.huitu.whht.base.core.api.wr.md.entities.WrMdInfT;

import com.huitu.whht.base.core.api.wr.md.entities.WrMdInfTQo;
import com.huitu.whht.base.core.api.wr.md.service.IWrMdInfTService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.List;

import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;

/**
 * 说明: 多媒体文件基本信息表API,表名称: WR_MD_INF_T <br/>
 * 日期: 2019-04-15
 * @author LiuCW
 */
@Component
@SzyCoreApiResource
@Path("wr/md/inf/t")
public class WrMdInfTResource extends AbstractApiResource {

    private static final Logger LOGGER = LoggerFactory.getLogger(WrMdInfTResource.class);

    private static final String UUID = "675fa906-2c61-4e72-9b8d-360afd2c4832";

    @Override
    public String getUUID() {
        return UUID;
    }

    @Autowired
    @SzyCoreApiService
    IWrMdInfTService wrMdInfTService;

    /**
     * @api {get} wr/md/inf/t/{fileCd:\\w{32}} [R][G]根据主键查询
     * @apiDescription [G]根据主键查询WR_MD_INF_T(多媒体文件基本信息表)数据
     * @apiName (generate)select by primary key
     * @apiGroup WR_MD_INF_T-多媒体文件基本信息表
     * @apiVersion 1.0.0
     * @apiSampleRequest wr/md/inf/t/5e6b518d56024e1b8d1d800de9219a18
     * @apiParam   {String}         fileCd             【必须】文件代码
     * @apiSuccess {String}         fileCd             文件代码
     * @apiSuccess {String}         fileTitl           文件标题
     * @apiSuccess {String}         keyWord            关键词
     * @apiSuccess {String}         estOrg             编制单位
     * @apiSuccess {String}         orgCd              组织机构代码
     * @apiSuccess {String}         estPers            编制人员
     * @apiSuccess {String}         mulTp              多媒体文件类型
     * @apiSuccess {String}         filePath           文件路径
     * @apiSuccess {String}         fileNm             文件名
     * @apiSuccess {Double}         fileSize           文件大小
     * @apiSuccess {String}         fileExt            文件扩展名
     * @apiSuccess {String}         isSec              是否密件
     * @apiSuccess {String}         secG               密件等级
     * @apiSuccess {Date}           ts                 时间戳(时间格式 <font color='red'>yyyy-MM-dd HH:mm:ss</font>)
     * @apiSuccess {String}         nt                 备注
     * @apiSuccess {String}         mangCd             业务代码
     * @apiSuccess {Date}           estDt              发布或编制日期(时间格式 <font color='red'>yyyy-MM-dd HH:mm:ss</font>)
     * @apiSuccess {Date}           pubDt              发布或编制日期(时间格式 <font color='red'>yyyy-MM-dd HH:mm:ss</font>)
     * @apiSuccess {String}         pubOrg             发布单位
     * @apiSuccess {String}         pubOrgCd           发布单位代码
     * @apiSuccess {String}         abs                摘要信息
     * @apiSuccess {String}         docTp              资料类别
     * @apiSuccessExample 请求成功:
     * HTTP/1.1 200 OK
     * {
     * "result": {
     * "fileCd": "5e6b518d56024e1b8d1d800de9219a18",
     * "fileTitl": "建始县自来水公司监测点图片",
     * "keyWord": "建始县自来水公司监测点图片",
     * "estOrg": "湖北省水利厅",
     * "orgCd": "011043321",
     * "estPers": null,
     * "mulTp": "2",
     * "filePath": "HB/WrPm/Img/201407/5e6b518d56024e1b8d1d800de9219a18.jpg",
     * "fileNm": "建始县自来水公司监测点图片",
     * "fileSize": null,
     * "fileExt": null,
     * "isSec": null,
     * "secG": null,
     * "ts": "2016-01-05 00:00:00.0",
     * "nt": null,
     * "mangCd": null,
     * "estDt": null,
     * "pubDt": null,
     * "pubOrg": null,
     * "pubOrgCd": null,
     * "abs": null,
     * "docTp": null
     *  }
     * }
     * @apiUse exceptions
     */
    @GET
    @Path("{fileCd:\\w{32}}")
    @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
    public Response selectByPrimaryKey(@PathParam("fileCd") String fileCd) {
        LOGGER.info("根据主键查询 多媒体文件基本信息表,参数 fileCd:{}", fileCd);
        return Response.ok(ApiResultBuilder.create(this, wrMdInfTService.selectByPrimaryKey(fileCd))).build();
    }

    /**
     * @api {post} wr/md/inf/t/list [R][G]根据条件查询
     * @apiDescription [G]根据条件查询WR_MD_INF_T(多媒体文件基本信息表)数据
     * @apiName (generate)select by filter
     * @apiGroup WR_MD_INF_T-多媒体文件基本信息表
     * @apiVersion 1.0.0
     * @apiSampleRequest wr/md/inf/t/list
     * @apiParam   {List(String)}   fileCdList         (数组)文件代码
     * @apiParam   {String}         fileCd             文件代码
     * @apiParam   {String}         fileTitl           文件标题
     * @apiParam   {String}         keyWord            关键词
     * @apiParam   {String}         estOrg             编制单位
     * @apiParam   {List(String)}   orgCdList          (数组)组织机构代码
     * @apiParam   {String}         orgCd              组织机构代码
     * @apiParam   {String}         estPers            编制人员
     * @apiParam   {List(String)}   mulTpList          (数组)多媒体文件类型
     * @apiParam   {String}         filePath           文件路径
     * @apiParam   {String}         fileNm             文件名
     * @apiParam   {Double}         fileSizeMin        (最小)文件大小
     * @apiParam   {Double}         fileSizeMax        (最大)文件大小
     * @apiParam   {String}         fileExt            文件扩展名
     * @apiParam   {List(String)}   isSecList          (数组)是否密件
     * @apiParam   {List(String)}   secGList           (数组)密件等级
     * @apiParam   {Date}           tsBgTm             (开始时间)时间戳
     * @apiParam   {Date}           tsEdTm             (结束时间)时间戳
     * @apiParam   {String}         nt                 备注
     * @apiParam   {List(String)}   mangCdList         (数组)业务代码
     * @apiParam   {Date}           estDtBgTm          (开始时间)发布或编制日期
     * @apiParam   {Date}           estDtEdTm          (结束时间)发布或编制日期
     * @apiParam   {Date}           pubDtBgTm          (开始时间)发布或编制日期
     * @apiParam   {Date}           pubDtEdTm          (结束时间)发布或编制日期
     * @apiParam   {String}         pubOrg             发布单位
     * @apiParam   {List(String)}   pubOrgCdList       (数组)发布单位代码
     * @apiParam   {String}         pubOrgCd           发布单位代码
     * @apiParam   {String}         abs                摘要信息
     * @apiParam   {List(String)}   docTpList          (数组)资料类别
     * @apiSuccess {String}         fileCd             文件代码
     * @apiSuccess {String}         fileTitl           文件标题
     * @apiSuccess {String}         keyWord            关键词
     * @apiSuccess {String}         estOrg             编制单位
     * @apiSuccess {String}         orgCd              组织机构代码
     * @apiSuccess {String}         estPers            编制人员
     * @apiSuccess {String}         mulTp              多媒体文件类型
     * @apiSuccess {String}         filePath           文件路径
     * @apiSuccess {String}         fileNm             文件名
     * @apiSuccess {Double}         fileSize           文件大小
     * @apiSuccess {String}         fileExt            文件扩展名
     * @apiSuccess {String}         isSec              是否密件
     * @apiSuccess {String}         secG               密件等级
     * @apiSuccess {Date}           ts                 时间戳
     * @apiSuccess {String}         nt                 备注
     * @apiSuccess {String}         mangCd             业务代码
     * @apiSuccess {Date}           estDt              发布或编制日期
     * @apiSuccess {Date}           pubDt              发布或编制日期
     * @apiSuccess {String}         pubOrg             发布单位
     * @apiSuccess {String}         pubOrgCd           发布单位代码
     * @apiSuccess {String}         abs                摘要信息
     * @apiSuccess {String}         docTp              资料类别
     * @apiSuccessExample 请求成功:
     * HTTP/1.1 200 OK
     * {
     * "result": [{
     * "fileCd": "5e6b518d56024e1b8d1d800de9219a18",
     * "fileTitl": "建始县自来水公司监测点图片",
     * "keyWord": "建始县自来水公司监测点图片",
     * "estOrg": "湖北省水利厅",
     * "orgCd": "011043321",
     * "estPers": null,
     * "mulTp": "2",
     * "filePath": "HB/WrPm/Img/201407/5e6b518d56024e1b8d1d800de9219a18.jpg",
     * "fileNm": "建始县自来水公司监测点图片",
     * "fileSize": null,
     * "fileExt": null,
     * "isSec": null,
     * "secG": null,
     * "ts": "2016-01-05 00:00:00.0",
     * "nt": null,
     * "mangCd": null,
     * "estDt": null,
     * "pubDt": null,
     * "pubOrg": null,
     * "pubOrgCd": null,
     * "abs": null,
     * "docTp": null
     *  }]
     * }
     *
     * @apiSuccessExample 分页请求:
     * request header: Rang={max=50;size=50;field=TS DESC}
     * HTTP/1.1 200 OK
     * {
     * "result": [{
     * "fileCd": "5e6b518d56024e1b8d1d800de9219a18",
     * "fileTitl": "建始县自来水公司监测点图片",
     * "keyWord": "建始县自来水公司监测点图片",
     * "estOrg": "湖北省水利厅",
     * "orgCd": "011043321",
     * "estPers": null,
     * "mulTp": "2",
     * "filePath": "HB/WrPm/Img/201407/5e6b518d56024e1b8d1d800de9219a18.jpg",
     * "fileNm": "建始县自来水公司监测点图片",
     * "fileSize": null,
     * "fileExt": null,
     * "isSec": null,
     * "secG": null,
     * "ts": "2016-01-05 00:00:00.0",
     * "nt": null,
     * "mangCd": null,
     * "estDt": null,
     * "pubDt": null,
     * "pubOrg": null,
     * "pubOrgCd": null,
     * "abs": null,
     * "docTp": null
     *  }],
     * "paging": {
     * "count": 3,
     * "total": 120,
     * "finale": false,
     * "index": 1
     * }
     * }
     * @apiUse header_rang
     * @apiUse exceptions
     */
    @POST
    @Path("list")
    @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
    public Response selectList(WrMdInfTQo filter) {
        PageUtils.startPageFromRang();
        LOGGER.info("根据条件查询 多媒体文件基本信息表,参数 WrMdInfTQo:{}", filter);
        return Response.ok(ApiResultBuilder.create(this, wrMdInfTService.selectList(filter))).build();
    }

    /**
     * @api {put} wr/md/inf/t [C][G]新增数据
     * @apiPrivate
     * @apiDescription [G]新增WR_MD_INF_T(多媒体文件基本信息表)数据
     * @apiName (generate)add data
     * @apiGroup WR_MD_INF_T-多媒体文件基本信息表
     * @apiVersion 1.0.0
     * @apiParam   {String}         fileCd             【必须】文件代码
     * @apiParam   {String}         fileTitl           文件标题
     * @apiParam   {String}         keyWord            关键词
     * @apiParam   {String}         estOrg             编制单位
     * @apiParam   {String}         orgCd              组织机构代码
     * @apiParam   {String}         estPers            编制人员
     * @apiParam   {String}         mulTp              【必须】多媒体文件类型
     * @apiParam   {String}         filePath           【必须】文件路径
     * @apiParam   {String}         fileNm             【必须】文件名
     * @apiParam   {Double}         fileSize           文件大小
     * @apiParam   {String}         fileExt            文件扩展名
     * @apiParam   {String}         isSec              是否密件
     * @apiParam   {String}         secG               密件等级
     * @apiParam   {Date}           ts                 时间戳(时间格式 <font color='red'>yyyy-MM-dd HH:mm:ss</font>)
     * @apiParam   {String}         nt                 备注
     * @apiParam   {String}         mangCd             业务代码
     * @apiParam   {Date}           estDt              发布或编制日期(时间格式 <font color='red'>yyyy-MM-dd HH:mm:ss</font>)
     * @apiParam   {Date}           pubDt              发布或编制日期(时间格式 <font color='red'>yyyy-MM-dd HH:mm:ss</font>)
     * @apiParam   {String}         pubOrg             发布单位
     * @apiParam   {String}         pubOrgCd           发布单位代码
     * @apiParam   {String}         abs                摘要信息
     * @apiParam   {String}         docTp              资料类别
     * @apiSuccess {Integer}        status             1:新增成功;0:新增失败.
     * @apiSuccess {String}         message            成功/失败消息内容
     * @apiSuccess {Object}         data               额外返回的数据,通常包含新增数据的主键值
     * @apiSampleRequest wr/md/inf/t
     * @apiSuccessExample 新增成功:
     * HTTP/1.1 200 OK
     * {
     * "result": {
     * "status":1,
     * "message":"成功",
     * "data":{
     *   "fileCd": "5e6b518d56024e1b8d1d800de9219a18"
     *      }
     *   }
     * }
     @apiSuccessExample 新增失败:
     * HTTP/1.1 200 OK
     * {
     * "result": {
     * "status":0,
     * "message":"失败",
     * "data":{
     *   "fileCd": "5e6b518d56024e1b8d1d800de9219a18"
     *      }
     *   }
     * }
     * @apiParamExample {json} 请求示例:
     * {
     * "fileCd": "5e6b518d56024e1b8d1d800de9219a18",
     * "fileTitl": "建始县自来水公司监测点图片",
     * "keyWord": "建始县自来水公司监测点图片",
     * "estOrg": "湖北省水利厅",
     * "orgCd": "011043321",
     * "estPers": null,
     * "mulTp": "2",
     * "filePath": "HB/WrPm/Img/201407/5e6b518d56024e1b8d1d800de9219a18.jpg",
     * "fileNm": "建始县自来水公司监测点图片",
     * "fileSize": null,
     * "fileExt": null,
     * "isSec": null,
     * "secG": null,
     * "ts": "2016-01-05 00:00:00.0",
     * "nt": null,
     * "mangCd": null,
     * "estDt": null,
     * "pubDt": null,
     * "pubOrg": null,
     * "pubOrgCd": null,
     * "abs": null,
     * "docTp": null
     * }
     * @apiUse exceptions
     */
    @PUT
    @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
    public Response insert(WrMdInfT record) {
        LOGGER.info("新增 多媒体文件基本信息表,参数 WrMdInfT:{}", record);
        return Response.ok(ApiResultBuilder.create(this, StatusRespBuilder.insert(wrMdInfTService.insertSelective(record),record))).build();
    }

    /**
     * @api {post} wr/md/inf/t/insertBatch [C][G]批量新增数据
     * @apiPrivate
     * @apiDescription [G]批量新增WR_MD_INF_T(多媒体文件基本信息表)数据
     * @apiName (generate)addBatch data
     * @apiGroup WR_MD_INF_T-多媒体文件基本信息表
     * @apiVersion 1.0.0
     * @apiParam   {String}         fileCd             【必须】文件代码
     * @apiParam   {String}         fileTitl           文件标题
     * @apiParam   {String}         keyWord            关键词
     * @apiParam   {String}         estOrg             编制单位
     * @apiParam   {String}         orgCd              组织机构代码
     * @apiParam   {String}         estPers            编制人员
     * @apiParam   {String}         mulTp              【必须】多媒体文件类型
     * @apiParam   {String}         filePath           【必须】文件路径
     * @apiParam   {String}         fileNm             【必须】文件名
     * @apiParam   {Double}         fileSize           文件大小
     * @apiParam   {String}         fileExt            文件扩展名
     * @apiParam   {String}         isSec              是否密件
     * @apiParam   {String}         secG               密件等级
     * @apiParam   {Date}           ts                 时间戳(时间格式 <font color='red'>yyyy-MM-dd HH:mm:ss</font>)
     * @apiParam   {String}         nt                 备注
     * @apiParam   {String}         mangCd             业务代码
     * @apiParam   {Date}           estDt              发布或编制日期(时间格式 <font color='red'>yyyy-MM-dd HH:mm:ss</font>)
     * @apiParam   {Date}           pubDt              发布或编制日期(时间格式 <font color='red'>yyyy-MM-dd HH:mm:ss</font>)
     * @apiParam   {String}         pubOrg             发布单位
     * @apiParam   {String}         pubOrgCd           发布单位代码
     * @apiParam   {String}         abs                摘要信息
     * @apiParam   {String}         docTp              资料类别
     * @apiSuccess {Integer}        status             1:新增成功;0:新增失败.
     * @apiSuccess {String}         message            成功/失败消息内容
     * @apiSuccess {Object}         data               额外返回的数据,通常包含新增数据的主键值
     * @apiSampleRequest wr/md/inf/t/insertBatch
     * @apiSuccessExample 新增成功:
     * HTTP/1.1 200 OK
     * {
     * "result": {
     * "status":1,
     * "message":"成功",
     * "data":{
     *   "fileCd": "5e6b518d56024e1b8d1d800de9219a18"
     *      }
     *   }
     * }
     @apiSuccessExample 新增失败:
     * HTTP/1.1 200 OK
     * {
     * "result": {
     * "status":0,
     * "message":"失败",
     * "data":{
     *   "fileCd": "5e6b518d56024e1b8d1d800de9219a18"
     *      }
     *   }
     * }
     * @apiParamExample {json} 请求示例:
     * [{
     * "fileCd": "5e6b518d56024e1b8d1d800de9219a18",
     * "fileTitl": "建始县自来水公司监测点图片",
     * "keyWord": "建始县自来水公司监测点图片",
     * "estOrg": "湖北省水利厅",
     * "orgCd": "011043321",
     * "estPers": null,
     * "mulTp": "2",
     * "filePath": "HB/WrPm/Img/201407/5e6b518d56024e1b8d1d800de9219a18.jpg",
     * "fileNm": "建始县自来水公司监测点图片",
     * "fileSize": null,
     * "fileExt": null,
     * "isSec": null,
     * "secG": null,
     * "ts": "2016-01-05 00:00:00.0",
     * "nt": null,
     * "mangCd": null,
     * "estDt": null,
     * "pubDt": null,
     * "pubOrg": null,
     * "pubOrgCd": null,
     * "abs": null,
     * "docTp": null
     * }]
     * @apiUse exceptions
     */
    @POST
    @Path("insertBatch")
    @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
    public Response insertBatch(List<WrMdInfT> recordList) {
        LOGGER.info("批量新增 多媒体文件基本信息表,参数 WrMdInfT:[]", recordList);
        return Response.ok(ApiResultBuilder.create(this, StatusRespBuilder.insert(wrMdInfTService.insertBatch(recordList),recordList))).build();
    }

    /**
     * @api {put} wr/md/inf/t/{fileCd:\\w{32}}/update [U][G]根据主键修改
     * @apiPrivate
     * @apiDescription [G]根据主键修改WR_MD_INF_T(多媒体文件基本信息表)数据
     * @apiName (generate)update data
     * @apiGroup WR_MD_INF_T-多媒体文件基本信息表
     * @apiVersion 1.0.0
     * @apiParam   {String}         fileCd             【必须】文件代码
     * @apiParam   {String}         fileTitl           文件标题
     * @apiParam   {String}         keyWord            关键词
     * @apiParam   {String}         estOrg             编制单位
     * @apiParam   {String}         orgCd              组织机构代码
     * @apiParam   {String}         estPers            编制人员
     * @apiParam   {String}         mulTp              【必须】多媒体文件类型
     * @apiParam   {String}         filePath           【必须】文件路径
     * @apiParam   {String}         fileNm             【必须】文件名
     * @apiParam   {Double}         fileSize           文件大小
     * @apiParam   {String}         fileExt            文件扩展名
     * @apiParam   {String}         isSec              是否密件
     * @apiParam   {String}         secG               密件等级
     * @apiParam   {Date}           ts                 【必须】时间戳
     * @apiParam   {String}         nt                 备注
     * @apiParam   {String}         mangCd             业务代码
     * @apiParam   {Date}           estDt              发布或编制日期
     * @apiParam   {Date}           pubDt              发布或编制日期
     * @apiParam   {String}         pubOrg             发布单位
     * @apiParam   {String}         pubOrgCd           发布单位代码
     * @apiParam   {String}         abs                摘要信息
     * @apiParam   {String}         docTp              资料类别
     * @apiSuccess {Integer}        status             1:修改成功;0:要修改的数据不存在(可能已被删除)
     * @apiSuccess {String}         message            成功/失败消息内容
     * @apiSuccess {Object}         data               额外返回的数据
     * @apiSampleRequest wr/md/inf/t/5e6b518d56024e1b8d1d800de9219a18/update
     * @apiSuccessExample 修改成功:
     * HTTP/1.1 200 OK
     * {
     * "result": {
     * "status":1,
     * "message":"成功",
     * "data":null
     *   }
     * }
     * @apiSuccessExample 修改失败:
     * HTTP/1.1 200 OK
     * {
     * "result": {
     * "status":0,
     * "message":"失败",
     * "data":null
     *   }
     * }
     * @apiParamExample {json} 请求示例:
     * {
     * "fileCd": "5e6b518d56024e1b8d1d800de9219a18",
     * "fileTitl": "建始县自来水公司监测点图片",
     * "keyWord": "建始县自来水公司监测点图片",
     * "estOrg": "湖北省水利厅",
     * "orgCd": "011043321",
     * "estPers": null,
     * "mulTp": "2",
     * "filePath": "HB/WrPm/Img/201407/5e6b518d56024e1b8d1d800de9219a18.jpg",
     * "fileNm": "建始县自来水公司监测点图片",
     * "fileSize": null,
     * "fileExt": null,
     * "isSec": null,
     * "secG": null,
     * "ts": "2016-01-05 00:00:00.0",
     * "nt": null,
     * "mangCd": null,
     * "estDt": null,
     * "pubDt": null,
     * "pubOrg": null,
     * "pubOrgCd": null,
     * "abs": null,
     * "docTp": null
     * }
     * @apiUse exceptions
     */
    @PUT
    @Path("{fileCd:\\w{32}}/update")
    @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
    public Response update(@PathParam("fileCd") String fileCd, WrMdInfT record) {
        record.setFileCd(fileCd);
        LOGGER.info("根据主键修改 多媒体文件基本信息表,参数 WrMdInfT:{}", record);
        return Response.ok(ApiResultBuilder.create(this, StatusRespBuilder.update(wrMdInfTService.updateByPrimaryKey(record)))).build();
    }

    /**
     * @api {put} wr/md/inf/t/{fileCd:\\w{32}}/update-selective [U][G]根据主键修改(只修改非null字段)
     * @apiPrivate
     * @apiDescription [G]根据主键修改WR_MD_INF_T(多媒体文件基本信息表)数据,只修改非null字段
     * @apiName (generate)update selected data
     * @apiGroup WR_MD_INF_T-多媒体文件基本信息表
     * @apiVersion 1.0.0
     * @apiParam   {String}         fileCd             文件代码
     * @apiParam   {String}         fileTitl           文件标题
     * @apiParam   {String}         keyWord            关键词
     * @apiParam   {String}         estOrg             编制单位
     * @apiParam   {String}         orgCd              组织机构代码
     * @apiParam   {String}         estPers            编制人员
     * @apiParam   {String}         mulTp              多媒体文件类型
     * @apiParam   {String}         filePath           文件路径
     * @apiParam   {String}         fileNm             文件名
     * @apiParam   {Double}         fileSize           文件大小
     * @apiParam   {String}         fileExt            文件扩展名
     * @apiParam   {String}         isSec              是否密件
     * @apiParam   {String}         secG               密件等级
     * @apiParam   {Date}           ts                 时间戳
     * @apiParam   {String}         nt                 备注
     * @apiParam   {String}         mangCd             业务代码
     * @apiParam   {Date}           estDt              发布或编制日期
     * @apiParam   {Date}           pubDt              发布或编制日期
     * @apiParam   {String}         pubOrg             发布单位
     * @apiParam   {String}         pubOrgCd           发布单位代码
     * @apiParam   {String}         abs                摘要信息
     * @apiParam   {String}         docTp              资料类别
     * @apiSuccess {Integer}        status             1:修改成功;0:要修改的数据不存在(可能已被删除)
     * @apiSuccess {String}         message            成功/失败消息内容
     * @apiSuccess {Object}         data               额外返回的数据
     * @apiSampleRequest wr/md/inf/t/5e6b518d56024e1b8d1d800de9219a18/update-selective
     * * @apiSuccessExample 修改成功:
     * HTTP/1.1 200 OK
     * {
     * "result": {
     * "status":1,
     * "message":"成功",
     * "data":null
     *   }
     * }
     * @apiSuccessExample 修改失败:
     * HTTP/1.1 200 OK
     * {
     * "result": {
     * "status":0,
     * "message":"失败",
     * "data":null
     *   }
     * }
     * @apiParamExample {json} 请求示例:
     * {
     * "fileCd": "5e6b518d56024e1b8d1d800de9219a18",
     * "fileTitl": "建始县自来水公司监测点图片",
     * "keyWord": "建始县自来水公司监测点图片",
     * "estOrg": "湖北省水利厅",
     * "orgCd": "011043321",
     * "estPers": null,
     * "mulTp": "2",
     * "filePath": "HB/WrPm/Img/201407/5e6b518d56024e1b8d1d800de9219a18.jpg",
     * "fileNm": "建始县自来水公司监测点图片",
     * "fileSize": null,
     * "fileExt": null,
     * "isSec": null,
     * "secG": null,
     * "ts": "2016-01-05 00:00:00.0",
     * "nt": null,
     * "mangCd": null,
     * "estDt": null,
     * "pubDt": null,
     * "pubOrg": null,
     * "pubOrgCd": null,
     * "abs": null,
     * "docTp": null
     * }
     * @apiUse exceptions
     */
    @PUT
    @Path("{fileCd:\\w{32}}/update-selective")
    @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
    public Response updateSelective(@PathParam("fileCd") String fileCd, WrMdInfT record) {
        record.setFileCd(fileCd);
        LOGGER.info("根据主键修改(只修改非null字段) 多媒体文件基本信息表,参数 WrMdInfT:{}", record);
        return Response.ok(ApiResultBuilder.create(this, StatusRespBuilder.update(wrMdInfTService.updateByPrimaryKeySelective(record)))).build();
    }

    /**
     * @api {post} wr/md/inf/t/updateBatch [U][G]根据主键批量修改(只修改非null字段)
     * @apiPrivate
     * @apiDescription [G]根据批量主键修改WR_MD_INF_T(多媒体文件基本信息表)数据,只修改非null字段
     * @apiName (generate)updateBatch selected data
     * @apiGroup WR_MD_INF_T-多媒体文件基本信息表
     * @apiVersion 1.0.0
     * @apiParam   {String}         fileCd             文件代码
     * @apiParam   {String}         fileTitl           文件标题
     * @apiParam   {String}         keyWord            关键词
     * @apiParam   {String}         estOrg             编制单位
     * @apiParam   {String}         orgCd              组织机构代码
     * @apiParam   {String}         estPers            编制人员
     * @apiParam   {String}         mulTp              多媒体文件类型
     * @apiParam   {String}         filePath           文件路径
     * @apiParam   {String}         fileNm             文件名
     * @apiParam   {Double}         fileSize           文件大小
     * @apiParam   {String}         fileExt            文件扩展名
     * @apiParam   {String}         isSec              是否密件
     * @apiParam   {String}         secG               密件等级
     * @apiParam   {Date}           ts                 时间戳
     * @apiParam   {String}         nt                 备注
     * @apiParam   {String}         mangCd             业务代码
     * @apiParam   {Date}           estDt              发布或编制日期
     * @apiParam   {Date}           pubDt              发布或编制日期
     * @apiParam   {String}         pubOrg             发布单位
     * @apiParam   {String}         pubOrgCd           发布单位代码
     * @apiParam   {String}         abs                摘要信息
     * @apiParam   {String}         docTp              资料类别
     * @apiSuccess {Integer}        status             1:修改成功;0:要修改的数据不存在(可能已被删除)
     * @apiSuccess {String}         message            成功/失败消息内容
     * @apiSuccess {Object}         data               额外返回的数据
     * @apiSampleRequest  wr/md/inf/t/updateBatch
     * * @apiSuccessExample 修改成功:
     * HTTP/1.1 200 OK
     * {
     * "result": {
     * "status":1,
     * "message":"成功",
     * "data":null
     *   }
     * }
     * @apiSuccessExample 修改失败:
     * HTTP/1.1 200 OK
     * {
     * "result": {
     * "status":0,
     * "message":"失败",
     * "data":null
     *   }
     * }
     * @apiParamExample {json} 请求示例:
     * [{
     * "fileCd": "5e6b518d56024e1b8d1d800de9219a18",
     * "fileTitl": "建始县自来水公司监测点图片",
     * "keyWord": "建始县自来水公司监测点图片",
     * "estOrg": "湖北省水利厅",
     * "orgCd": "011043321",
     * "estPers": null,
     * "mulTp": "2",
     * "filePath": "HB/WrPm/Img/201407/5e6b518d56024e1b8d1d800de9219a18.jpg",
     * "fileNm": "建始县自来水公司监测点图片",
     * "fileSize": null,
     * "fileExt": null,
     * "isSec": null,
     * "secG": null,
     * "ts": "2016-01-05 00:00:00.0",
     * "nt": null,
     * "mangCd": null,
     * "estDt": null,
     * "pubDt": null,
     * "pubOrg": null,
     * "pubOrgCd": null,
     * "abs": null,
     * "docTp": null
     * }]
     * @apiUse exceptions
     */
    @POST
    @Path("updateBatch")
    @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
    public Response updateBatch(List<WrMdInfT> record) {
        LOGGER.info("根据主键批量修改(只修改非null字段) 多媒体文件基本信息表,参数 WrMdInfT:{}", record);
        return Response.ok(ApiResultBuilder.create(this, StatusRespBuilder.update(wrMdInfTService.updateBatch(record)))).build();
    }

    /**
     * @api {delete} wr/md/inf/t/{fileCd:\\w{32}} [D][G]根据主键删除
     * @apiPrivate
     * @apiDescription [G]根据主键删除WR_MD_INF_T(多媒体文件基本信息表)数据
     * @apiName (generate)delete by primary key
     * @apiGroup WR_MD_INF_T-多媒体文件基本信息表
     * @apiVersion 1.0.0
     * @apiSampleRequest wr/md/inf/t/5e6b518d56024e1b8d1d800de9219a18
     * @apiParam   {String}         fileCd             【必须】文件代码
     * @apiSuccess {Integer}        status             1:删除成功;0:要删除的数据不存在(可能已被删除).
     * @apiSuccess {String}         message            成功/失败消息内容
     * @apiSuccess {Object}         data               额外返回的数据
     * @apiSuccessExample 删除成功:
     * HTTP/1.1 200 OK
     * {
     * "result": {
     * "status":1,
     * "message":"成功",
     * "data":null
     *   }
     * }
     * @apiSuccessExample 删除失败:
     * HTTP/1.1 200 OK
     * {
     * "result": {
     * "status":0,
     * "message":"失败",
     * "data":null
     *   }
     * }
     * @apiUse exceptions
     */
    @DELETE
    @Path("{fileCd:\\w{32}}")
    @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
    public Response delete(@PathParam("fileCd") String fileCd) {
        LOGGER.info("根据主键删除 多媒体文件基本信息表,参数 fileCd:{}", fileCd);
        Integer rows = wrMdInfTService.deleteByPrimaryKey(fileCd);
        return Response.ok(ApiResultBuilder.create(this, StatusRespBuilder.delete(rows))).build();
    }

    /**
     * @api {delete} wr/md/inf/t/by-filter [D][G]根据条件删除
     * @apiPrivate
     * @apiDescription [G]根据条件删除WR_MD_INF_T(多媒体文件基本信息表)数据
     * @apiName (generate)delete by filter
     * @apiGroup WR_MD_INF_T-多媒体文件基本信息表
     * @apiVersion 1.0.0
     * @apiSampleRequest wr/md/inf/t/by-filter
     * @apiParam   {List(String)}   fileCdList         (数组)文件代码
     * @apiParam   {String}         fileCd             文件代码
     * @apiParam   {String}         fileTitl           文件标题
     * @apiParam   {String}         keyWord            关键词
     * @apiParam   {String}         estOrg             编制单位
     * @apiParam   {List(String)}   orgCdList          (数组)组织机构代码
     * @apiParam   {String}         orgCd              组织机构代码
     * @apiParam   {String}         estPers            编制人员
     * @apiParam   {List(String)}   mulTpList          (数组)多媒体文件类型
     * @apiParam   {String}         filePath           文件路径
     * @apiParam   {String}         fileNm             文件名
     * @apiParam   {Double}         fileSizeMin        (最小)文件大小
     * @apiParam   {Double}         fileSizeMax        (最大)文件大小
     * @apiParam   {String}         fileExt            文件扩展名
     * @apiParam   {List(String)}   isSecList          (数组)是否密件
     * @apiParam   {List(String)}   secGList           (数组)密件等级
     * @apiParam   {Date}           tsBgTm             (开始时间)时间戳
     * @apiParam   {Date}           tsEdTm             (结束时间)时间戳
     * @apiParam   {String}         nt                 备注
     * @apiParam   {List(String)}   mangCdList         (数组)业务代码
     * @apiParam   {Date}           estDtBgTm          (开始时间)发布或编制日期
     * @apiParam   {Date}           estDtEdTm          (结束时间)发布或编制日期
     * @apiParam   {Date}           pubDtBgTm          (开始时间)发布或编制日期
     * @apiParam   {Date}           pubDtEdTm          (结束时间)发布或编制日期
     * @apiParam   {String}         pubOrg             发布单位
     * @apiParam   {List(String)}   pubOrgCdList       (数组)发布单位代码
     * @apiParam   {String}         pubOrgCd           发布单位代码
     * @apiParam   {String}         abs                摘要信息
     * @apiParam   {List(String)}   docTpList          (数组)资料类别
     * @apiSuccess {Integer}        status             通常1或者>1:删除成功;0:没有符合条件的数据.
     * @apiSuccess {String}         message            成功/失败消息内容
     * @apiSuccess {Object}         data               额外返回的数据
     * @apiSuccessExample 删除成功:
     * HTTP/1.1 200 OK
     * {
     * "result": {
     * "status":1,
     * "message":"成功",
     * "data":null
     *   }
     * }
     * @apiSuccessExample 删除失败:
     * HTTP/1.1 200 OK
     * {
     * "result": {
     * "status":0,
     * "message":"失败",
     * "data":null
     *   }
     * }
     * @apiUse exceptions
     */
    @DELETE
    @Path("by-filter")
    @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
    public Response deleteByFilter(WrMdInfTQo filter) {
        LOGGER.info("根据条件删除 多媒体文件基本信息表,参数 WrMdInfTQo:{}", filter);
        Integer rows = wrMdInfTService.deleteByFilter(filter);
        return Response.ok(ApiResultBuilder.create(this, StatusRespBuilder.delete(rows))).build();
    }
}
